home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue29 / web / FPPCHAIN.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1997-07-28  |  3.4 KB  |  104 lines

  1. unit fppchain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables,
  7.   FieldsProducer;
  8.  
  9. type
  10.   TWebModule1 = class(TWebModule)
  11.     Table1: TTable;
  12.     ppFirstStage: TPageProducer;
  13.     ppSecondStage: TPageProducer;
  14.     procedure ppFirstStageHTMLTag(Sender: TObject; Tag: TTag;
  15.       const TagString: String; TagParams: TStrings;
  16.       var ReplaceText: String);
  17.     procedure WebModule1WebActionItem1Action(Sender: TObject;
  18.       Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  19.     procedure ppSecondStageHTMLTag(Sender: TObject; Tag: TTag;
  20.       const TagString: String; TagParams: TStrings;
  21.       var ReplaceText: String);
  22.   private
  23.     { Private declarations }
  24.   public
  25.     { Public declarations }
  26.   end;
  27.  
  28. var
  29.   WebModule1: TWebModule1;
  30.  
  31. implementation
  32.  
  33. {$R *.DFM}
  34.  
  35. procedure TWebModule1.ppFirstStageHTMLTag(Sender: TObject; Tag: TTag;
  36.   const TagString: String; TagParams: TStrings; var ReplaceText: String);
  37. begin
  38.   with Table1 do
  39.     if CompareText(TagString, 'ACCT') = 0 then
  40.       ReplaceText := FieldByName('ACCT_NBR').AsString
  41.     else
  42.     if CompareText(TagString, 'NAME') = 0 then
  43.       ReplaceText := FieldByName('FIRST_NAME').AsString + #32 +
  44.         FieldByName('LAST_NAME').AsString
  45.     else
  46.     if CompareText(TagString, 'ADDRESS') = 0 then
  47.       ReplaceText := format('<#ADDRESSLINES ADDR1=%s CITY=%s STATE=%s ZIP=%s>',
  48.         [HTTPEncode(FieldByName('ADDRESS_1').AsString),
  49.          HTTPEncode(FieldByName('CITY').AsString),
  50.          HTTPEncode(FieldByName('STATE').AsString),
  51.          FieldByName('ZIP').AsString])
  52.     else
  53.     if CompareText(TagString, 'DOB') = 0 then
  54.       ReplaceText := FieldByName('BIRTH_DATE').AsString
  55.     else
  56.     if CompareText(TagString, 'OBJ') = 0 then
  57.       ReplaceText := FieldByName('OBJECTIVES').AsString
  58.     else
  59.     if CompareText(TagString, 'HOBBY') = 0 then
  60.       ReplaceText := FieldByName('INTERESTS').AsString
  61.     else
  62.     if CompareText(TagString, 'RISK') = 0 then
  63.       ReplaceText := FieldByName('RISK_LEVEL').AsString
  64.     else
  65.     if CompareText(TagString, 'JOB') = 0 then
  66.       ReplaceText := FieldByName('OCCUPATION').AsString
  67.     else
  68.     if CompareText(TagString, 'PHOTO') = 0 then
  69.       ReplaceText := '<#IMAGE SRC=' + FieldByName('PICTURE').AsString + '>'
  70.     else
  71.     if CompareText(TagString, 'TEL') = 0 then
  72.       ReplaceText := FieldByName('TELEPHONE').AsString;
  73. end;
  74.  
  75. procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
  76.   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  77. begin
  78.   if Table1.Locate('LAST_NAME', Request.QueryFields.Values['name'],
  79.     [loCaseInsensitive]) then
  80.   begin
  81.     ppSecondStage.HTMLDoc.Add(ppFirstStage.Content);
  82.     Response.Content := ppSecondStage.Content;
  83.   end
  84.   else
  85.     Response.Content := '<H2>Unable to find name ' +
  86.       Request.QueryFields.Values['name'];
  87. end;
  88.  
  89. procedure TWebModule1.ppSecondStageHTMLTag(Sender: TObject; Tag: TTag;
  90.   const TagString: String; TagParams: TStrings; var ReplaceText: String);
  91. begin
  92.     if CompareText(TagString, 'IMAGE') = 0 then
  93.       ReplaceText := '<IMG SRC="http://localhost/docs/' + TagParams.Values['SRC'] + '">'
  94.     else
  95.     with TagParams do
  96.       if CompareText(TagString, 'ADDRESSLINES') = 0 then
  97.         ReplaceText := Values['ADDR1'] + '<BR>' +
  98.                      Values['CITY']  + '<BR>' +
  99.                      Values['STATE'] + '<BR>' +
  100.                      Values['ZIP'];
  101. end;
  102.  
  103. end.
  104.